<!DOCTYPE html>
<html lang="zh-cn">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <!-- 
    1 给定一个整数数组，找到从三个整数中产生的最大乘积。
    2 一个未排序的数组包含 n 个连续数字中的 n-1 个数字，找到缺失的数字，要求时间复杂度为 O(n)
      数组去重
    3 给定一个整数数组，请找出两个元素之间的最大差，较小值的元素必须位于较大元素之前
    4 给定一个整数数组，返回一个数组，其中 output[i] 等于自身以外的所有元素的乘积，要求时间复杂度为 O(n)
    4 求两个数组的交集 -->
  <script>
    let arr1 = [2, 4, 6, 8, 9, 3, 6, 90]
    function sortIntegers(a, b) {
      return a - b;
    }
    function computeProduct(unsorted) {
      const sortedArray = unsorted.sort(sortIntegers);
      const array_n_element = sortedArray.length - 1;

      let product1 = 1;
      let product2 = 1;
      //倒数第一位 到 倒数第四位
      for (let x = array_n_element; x > array_n_element - 3; x--) {
        console.log(product1);
        product1 = product1 * sortedArray[x];
      }

      product2 = sortedArray[0] * sortedArray[1] * sortedArray[array_n_element];

      if (product1 > product2) return product1;

      return product2;
    }
    computeProduct(arr1);

    function findMissingNumber(arrayOfIntegers, upperBound, lowerBound) {
      let sumOfIntegers = 0;

      for (let i = 0; i < arrayOfIntegers.length; i++) {
        sumOfIntegers += arrayOfIntegers[i];
      }

      upperLimitSum = (upperBound * (upperBound + 1)) / 2;
      lowerLimitSum = (lowerBound * (lowerBound - 1)) / 2;

      theoreticalSum = upperLimitSum - lowerLimitSum;
      console.log(theoreticalSum - sumOfIntegers);
      return theoreticalSum - sumOfIntegers;
    }
    const arrayOfIntegers = [2, 5, 1, 4, 9, 6, 3, 7];
    const upperBound = 9;
    const lowerBound = 1;
    findMissingNumber(arrayOfIntegers, upperBound, lowerBound); // 8
    /*
      1. 实现Array.prototype.reader，按参数截取队头元素返回，不可改变原数组
      2. 合并两个number数组a和b并排序，如果有一个数出现多次，按出现次数多的一方保留
      3. 节流函数的一个改造版
      4. 用fetch封装最大并发请求函数
    */
    let arr3=[2,3,4,5,6,78,6,6,6,66,6]
    let arr4=[9,12,34,56,78,25]
    let arr5=[...arr3,...arr4]

    for (let i = 0; i < arr5.length; i++) {
      for (let j = i+1; j < arr5.length; j++) {
        if (arr5[i]>arr5[j]) {
          let temp=arr5[i]
          arr5[i]=arr5[j]
          arr5[j]=temp
        }
      }
    }
    console.log('arr5',arr5);
  </script>
</body>

</html>